<?php
/**
* @package   auto_occasion
* @subpackage essais
* @author    your name
* @copyright 2011 your name
* @link      http://www.yourwebsite.undefined
* @license    All rights reserved
*/

class FoEssaiRechercheCtrl extends jController {
    /**
    * Page essai - recherche - front
    */
    function index() {
        

        jClasses::inc('marqueModele~marqueSrv') ;
        jClasses::inc('publicite~pubSrv') ;
        jClasses::inc('commun~parametre') ;
        jClasses::inc('commun~common') ;
        jClasses::inc('essais~essaisSrv') ;
        jClasses::inc('marqueModele~modeleSrv')  ;

        
       // $dossierSpec = essaisSrv::getAllFichesByTypeId(ESSAI_TYPE_SPECIAUX,10) ;
        $dossierSpec		= common::liste('ao_dossier') ;
        
        $marque				= marqueSrv::getAllMarqueEssai() ; // order by marque_ordre

        // Récupération de la marque à partie de la home : essai les plus consultés
        $marqueId			= $this->intParam('marque', 0) ;
        $modele				= array() ;
        if ($marqueId) {
            $modele			= modeleSrv::getAllOrderedModeleByMarqueId($marqueId)  ;
        }
        
        $rep				= $this->getResponse('htmlFo') ;        
        $rep->menusActifs	= frontHtmlResponse::MENU_ESSAI ;
        $rep->breadCrumb	= array(frontHtmlResponse::MENU_ACCUEIL, frontHtmlResponse::MENU_ESSAI)  ;

        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/carousel_custom.js') ;
        $rep->addCSSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/css/sliderkit.css') ;
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.easing.1.3.min.js') ;
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/jquery.sliderkit.1.9.1.pack.js') ;
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/essai.js') ;
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/pub.js') ;
        $rep->addJSLink($GLOBALS['gJConfig']->urlengine['basePath'].'design/front/js/essaiRecherche.js') ;
         ;


        //xml pour le header : title, desc, keywords
        $headerContent				= common::readXml(PATH_XML_ESSAIS_RECHERCHE) ;
        // change le header de la page en cours
        $rep->title					= isset($headerContent->title)?$headerContent->title:'' ;
		$headerContent->keywords	= isset($headerContent->keywords)?$headerContent->keywords:'' ;
		$headerContent->desc		= isset($headerContent->desc)?$headerContent->desc:'' ;
        $keywords					= "<meta name='keywords' content='" . $headerContent->keywords . "'>"  ;
        $description				= "<meta name='Description' content='" . $headerContent->desc. "'>"  ;
        $rep->addHeadContent($keywords) ;
        $rep->addHeadContent($description) ;
     
        $rep->bodyTpl				= 'essais~FoEssaiRecherche' ;
		$iTypeErreur				= $this->intParam('erreur',0) ;
		$zMessageErreur				= "" ;
		switch ($iTypeErreur) {
		
			case 0 :
			break ;
			case 1 :
				$zMessageErreur		= " AUCUN RESULTAT POUR VOTRE RECHERCHE ! " ;
			break ;
			case 2 :
				$zMessageErreur		= " ESSAI NON TROUVÉ ! " ;
			break ;

		}
        $rep->body->assign("erreur", $iTypeErreur) ;
        $rep->body->assign("zMessageErreur", $zMessageErreur) ;
        $rep->body->assign("marque", $marque) ;
        $rep->body->assign("dossierSpec", $dossierSpec) ;
         //pubHidden et rightContent
        $paramPub = array('p1'=>PUB_RIGHT_1_ID,'p2'=>PUB_RIGHT_2_ID,'p3'=>PUB_RIGHT_3_ID,'p4'=>PUB_RIGHT_4_ID,'p5'=>PUB_RIGHT_5_ID,'p6'=>PUB_RIGHT_6_ID) ;
        $rep->body->assignZone('oZonePubHidden', 'commun~FoPubHidden',$paramPub) ;
        
        $paramRight = array('ad'=>1, 'no_need_cc2'=>1) ;
        $rep->body->assignZone('oZoneRightContent', 'commun~FoRightContent',$paramRight) ;
        //---

        $rep->body->assign('marqueId', $marqueId) ;
        $rep->body->assign('modele', $modele) ;
		
        return $rep ;
    }
    
    /*
     * Resultat recherche essai
     */
    function resultFicheEssai(){
        jClasses::inc('essais~essaisSrv') ;
        $marqueId	= ($this->intParam('marque')) ? $this->intParam('marque') : 0 ;
        $idEssai	= ($this->intParam('modele')) ? $this->intParam('modele') : 0 ;
        //$idEssai	= essaisSrv::getIdEssaiByMarqueModele($marqueId, $modeleId)  ;

        $rep = $this->getResponse('redirect')  ;
        if($idEssai){
            $rep->action = 'essais~FoEssai:index'  ;
            $rep->params = array('id'=>$idEssai)  ;
        } else{
            $rep->action = 'essais~FoEssaiRecherche:index'  ;
            $rep->params = array('erreur'=>1)  ;
        }
        return $rep ;
        
    }

    /**
     * Verifie si la marque est associée à une gamme dans l'essai
     *
     */
    function checkIfGammeLinked () {
        
        $iMarqueId = $this->intParam('iMarqueId')  ;
        
        jClasses::inc('marqueModele~marqueSrv')  ;
        
        $rep   = $this->getResponse('json')  ;
        $rep->data = marqueSrv::isLinkedWithGamme($iMarqueId)  ;
        
        return $rep ;
    }
	 /**
     * Fonction permettant d'afficher les essai d'une concurente
     * @param	empty
     * @return	$oResponse
     */
    function resultFicheEssaiConcurente () {
		//type de reponse
		$oResponse	= $this->getResponse('redirect')  ;
		//inclusion des classes services 
		jClasses::inc('essais~essaisSrv') ;
		//Recuperation des paramètres marque et modèle
		$iMarqueId	= ($this->intParam('marque')) ? $this->intParam('marque') : 0 ;
        $iModeleId	= ($this->intParam('modele')) ? $this->intParam('modele') : 0 ;
		//On teste si la marque de la concurente a été utilisé dans un essai
		$bIsMarqueInEssai		=	essaisSrv::chekIfIsMarqueInEssai($iMarqueId) ;
		//Si la marque de la concurente n'est pas presente dans les essais on redirige vers la recherche des essais

		if ($bIsMarqueInEssai==false) 
		{
			$oResponse->action		= 'essais~FoEssaiRecherche:index'  ;
			$oResponse->params	= array('erreur'=>1)  ;
		}
		else
		{
			$bIsModeleInEssai	=	essaisSrv::chekIfIsModeleInEssai($iMarqueId,$iModeleId) ;
			//Si le modele de la concurente n'est pas presente dans les essais 
			if ($bIsModeleInEssai==false)
			{
				//on redirige vers les gammes
				
				$iEssaiId				=  essaisSrv::getIdEssaiByMarqueModele($iMarqueId,0)  ;
				$iChapitreId			=  essaisSrv::getChapitreIdByEssaiModele($iEssaiId, $iModeleId)  ;
				if ($iChapitreId != 0)
				{
					$oResponse->action		= 'essais~FoEssai:chapitre'  ;
					$oResponse->params		= array('chap'=>$iChapitreId,'id'=>$iEssaiId)  ;
				}
				else
				{
					$oResponse->action		= 'essais~FoEssai:index'  ;
					$oResponse->params	= array('id'=>$iEssaiId)  ;
				}
				
			}
			else
			{

				$tzListesVersions	= array() ;
				$iEssaiId			=  essaisSrv::getIdEssaiByMarqueModele($iMarqueId, $iModeleId)  ;
				$tzListesVersions	= essaisSrv::getListesVersionsByEssaiId($iEssaiId) ;
				//Si le couple marque modèle correspond à une ou plusieurs versions
				if (count($tzListesVersions) > 0)
				{
					//on redirige vers la listes des versions 
					
					$oResponse->action	= 'essais~FoEssai:listEssaiConcurente'  ;
					$oResponse->params	= array('iMarqueId'=>$iMarqueId ,'iModeleId'=>$iModeleId)  ;
				}
				else
				{
					//on redirige  vers le sommaire de l'essai
					$oResponse->action		= 'essais~FoEssai:index'  ;
					$iEssaiId				=  essaisSrv::getIdEssaiByMarqueModele($iMarqueId, $iModeleId)  ;
					$oResponse->params		= array('id'=>$iEssaiId)  ;
				}
			}
		}

        return $oResponse ;
    }
}